Lecture Notes on Software Model Checking

نویسنده

  • Rupak Majumdar
چکیده

So far we’ve focused on model checking algorithms that assume a computation structure is given. It should come as no surprise that our goal is to perform model checking of programs given as code, so today we’ll describe techniques that allow us to apply model checking in this setting. There are several challenges to doing so, foremost among them the fact that the statespace of programs may be infinite. We’ll describe two approaches for dealing with this: bounded model checking and predicate abstraction. Each of these techniques addresses the problem by computing an approximation. Bounded model checking computes an underapproximation of the reachable statespace by assuming a fixed computation depth in advance, and treating paths within this depth limit symbolically to explore all possible states. Predicate abstraction computes an overapproximation of reachable states by constructing a transition structure that treats distinct program states identically, in a way that makes it possible to reason over a finite number of states. While either approach has its limitations, both are used effectively in practice, and are the core techniques that make software model checking possible.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Friendly Logics , Fall 2015 , Lecture Notes

Since we already know (Theorem 1.3 in lecture notes 3) that the data complexity of FOL model checking is in LOGSPACE, we could use common complexity-theoretic assumptions (such as LOGSPACE 6=NP) to conclude that NP-complete properties of finite graphs such as Hamiltonicity, clique or independent set existence, etc. are not FO-definable. However, we might be interested in asking if properties th...

متن کامل

Abstraction and Modular Verification of Infinite-State Reactive Systems

ion and Modular Verification of Infinite-State Reactive Systems ⋆ Zohar Manna, Michael A. Colón, Bernd Finkbeiner, Henny B. Sipma and Tomás E. Uribe Computer Science Department Stanford University Stanford, CA. 94305-9045 [email protected] Abstract. We review a number of temporal verification techniques for reactive systems using modularity and abstraction. Their use allows the verification...

متن کامل

Lecture Notes on LTL Model Checking & Büchi Automata

We’ve seen how to check Computation Tree Logic (CTL) formulas against computation structures. The algorithm for doing so directly computes the semantics of formulas, and makes use of the fixpoint properties of monotone functions to derive the set of states in a transition structure that satisfy the formula. We saw in a previous lecture that LTL formulas are defined over traces, of where there a...

متن کامل

Lecture Notes on CEGAR & Craig Interpolation

In the previous lecture we saw how to create a Kripke structure whose language is equivalent to the trace semantics of a program. However, this is problematic for model checking due to the fact that there are an infinite number of states in the structure. We began describing a way to address this using predicate abstraction, which overapproximates the Kripke structure by partitioning Kripke sta...

متن کامل

Model Checking and the State Explosion Problem

Model checking is an automatic verification technique for hardware and software systems that are finite state or have finite state abstractions. It has been used successfully to verify computer hardware, and it is beginning to be used to verify computer software as well. As the number of state variables in the system increases, the size of the system state space grows exponentially. This is cal...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012